#include #include #define BUTTON_PIN D8 uint8_t peerAddress[] = {0x7C, 0x2C, 0x67, 0x64, 0xBA, 0xF8}; typedef struct struct_message { int track; } struct_message; struct_message msg; bool lastState = HIGH; int currentTrack = 1; void setup() { Serial.begin(115200); pinMode(BUTTON_PIN, INPUT_PULLUP); WiFi.mode(WIFI_STA); if (esp_now_init() != ESP_OK) { Serial.println("ESP-NOW init failed"); return; } esp_now_peer_info_t peerInfo = {}; memcpy(peerInfo.peer_addr, peerAddress, 6); peerInfo.channel = 0; peerInfo.encrypt = false; esp_now_add_peer(&peerInfo); Serial.println("Sender ready"); } void loop() { bool currentState = digitalRead(BUTTON_PIN); // detect press if (lastState == HIGH && currentState == LOW) { msg.track = currentTrack; Serial.print("Sending track: "); Serial.println(currentTrack); esp_now_send(peerAddress, (uint8_t *)&msg, sizeof(msg)); // move to next track currentTrack++; if (currentTrack > 4) currentTrack = 1; delay(300); // debounce } lastState = currentState; }